#include <stdio.h>
#include <stdlib.h>
#define MaxSize 100000
#define ERROR -1
typedef char ElementType;
typedef struct {
    ElementType data[MaxSize];  
    int top;       
}SqStack;
void InitStack(SqStack *&s);
void DestroyStack(SqStack *&s);
bool Push(SqStack *&s,ElementType e);
bool Pop(SqStack *&s,ElementType &e);
bool symmetry(ElementType str[]);
int main()
{
	SqStack *s;
	ElementType str[MaxSize];
	gets(str);
	int n;
	InitStack(s);
	n=symmetry(str);
	if(n==0) printf("no\n");
	if(n==1) printf("yes\n");
}
void InitStack(SqStack *&s)
{
	s=(SqStack *)malloc(sizeof(SqStack));
	s->top=-1;
}

void DestroyStack(SqStack *&s)
{
	free(s);
}

bool Push(SqStack *&s,ElementType e)
{
	if(s->top==MaxSize-1)
	    return false;
	s->top++;
	s->data[s->top]=e;
	return true;
}

bool Pop(SqStack *&s,ElementType &e)
{
	if(s->top==-1)
	    return false;
	e=s->data[s->top];
	s->top--;
	return true;
}
 
bool symmetry(ElementType str[])
{
	int i;
	ElementType e;
	SqStack *st;
	InitStack(st);
	for(i=0;str[i]!='\0';i++)
	    Push(st,str[i]);
	for(i=0;str[i]!='\0';i++)
	{
		Pop(st,e);
		if(str[i]!=e){
			DestroyStack(st);
			return false;
		}
	}
	DestroyStack(st);
	return true;
}


